#include <stdio.h>
#include <stdlib.h>

int *realloc_N(int n, int *prt)
{
    int *prt1;
    // 分配包含 n 个整数的内存空间
    prt1 = (int *)malloc(n * sizeof(int));

    if (prt1 == NULL)
    {
        return NULL; // 如果内存分配失败，返回 NULL
    }

    // 将原数组的内容复制到新数组
    for (int i = 0; i < n; i++)
    {
        prt1[i] = prt[i];
    }

    // 释放原数组的内存
    free(prt);

    // 返回新数组的指针
    return prt1;
}

int main()
{
    int *ptr;
    int size = 5;

    // 分配包含 5 个整数的内存空间
    ptr = (int *)malloc(size * sizeof(int));

    if (ptr == NULL)
    {
        printf("内存分配失败\n");
        return 1;
    }

    // 使用分配的内存空间
    for (int i = 0; i < size; ++i)
    {
        ptr[i] = i * 10;
        printf("%d ", ptr[i]);
    }

    ptr = (int *)realloc_N(10, ptr);

    // 释放内存空间
    free(ptr);

    return 0;
}